#ifndef _H_TDF_TABLE
#define _H_TDF_TABLE

#include <vector>
#include <string>
#include "label.h"

using namespace std;

class tdf_name_table{

    protected:
        vector<sLabel> nameTable;

    public:
        tdf_name_table();
        ~tdf_name_table();

        void clear();

        unsigned int addName(sLabel*);
        unsigned int addName(string*);
        unsigned int addName(char*);

        bool findName(sLabel*,unsigned int*);
        bool findName(string*,unsigned int*);
        bool findName(char*,unsigned int*);

        string getName(unsigned int);
        unsigned int getNumName();

        void exportNameTable(FILE*);
        void importNameTable(FILE*);
};

class tdf_content_table{
    protected:
        bool uptodate;

    public:
        tdf_name_table nodesNT;
        tdf_name_table attributesNT;

        tdf_content_table();
        ~tdf_content_table();

        void markModified();

};

#endif
